package com.cskaoyan.javase._2inner._1member._2exercise;

/**
 * 小练习
 * @since 17:48
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // 创建Inner对象
        Outer.Inner oi = new Outer().new Inner();
        oi.show();
    }
}

// 外围类
class Outer {
    public int num = 10;

    public Outer() {
        System.out.println("外围类的无参构造器");
    }

    // 成员内部类
    class Inner {
        public int num = 20;

        public Inner() {
            System.out.println("成员内部类的无参构造器");
        }

        public void show() {
            int num = 30;
            // 就近原则,局部变量num=30
            System.out.println(num);
            // this指向当前对象,是自身内部类的成员变量,num=20
            System.out.println(this.num);
            // 外围类类名.this.num = 10 是外围类的成员变量num
            System.out.println(Outer.this.num);
        }
    }
}